#coding:utf-8


from flask import Flask, render_template, request, redirect
#导入wtf扩展的表单类
from flask_wtf import FlaskForm
#导入自定义表单需要的字段
from wtforms import StringField, PasswordField, SubmitField
#导入wtf扩展提供的表单验证器
from wtforms.validators import DataRequired, EqualTo

app = Flask(__name__)

class Config(object):
    #todo 这个设置是为了防止csrf
    SECRET_KEY = 'FAJ;LKDERJRTQ9009FALK;DJ'
app.config.from_object(Config)


#自定义表单类,有三个字段,文本字段,密码字段,提交按钮
class Login(FlaskForm):  #继承来自flask_wtf中的Form表单
    #          wtf字段      显示的标签      验证器       必须填写
    username = StringField(label=u'用户', validators=[DataRequired(u'用户名必填')])
    #          密码字段
    password = PasswordField(label=u'密码', validators=[DataRequired(u'密码必填')])
    #                                                                       确认两次密码一致,第二次为错误显示
    password2 = PasswordField(label=u'确认密码', validators=[DataRequired(u'确认密码必填'),
                                                         EqualTo('password', u'第二次密码不正确')])
    submit = SubmitField(u'提交')


#todo 当使用上面自定义的表单类,可以直接传递给前端模板
@app.route('/login', methods=['GET','POST'])
def login():
    form = Login()  #todo 实例化类

    #todo 接收前端发过来的表单请求,以post方式
    if form.validate_on_submit():
        #todo 当需要获取数据的时候,记住这里用data
        username = form.username.data

        return u'验证通过'
    #todo 未验证通过则继续返回当前模板.当为get方式的时候,也是验证不通过的
    return render_template('login.html',form=form)




if __name__ == '__main__':
    app.run(debug=True)


